﻿#ifndef DATATYPEDEFINITION_H
#define DATATYPEDEFINITION_H

#include <QMap>
#include <QString>
#include <QStringList>
#include <QtXml>

namespace DataTypeDefine {

struct StructEle{

    QString structId;

    //元素名称
    QString elementName;

    //元素定义
    QString elementDef;

    //元素oid
    QString elementOid;

    //元素描述
    QString elementComment;
};
typedef QList<StructEle>  StructEleList;

struct DimensionArray{

    QString arrayId;

    // 数组类型
    QString arrayType;

    // 数组维度
    int dimension;

    //数组大小
    QList<int> arrayCounts;
};

struct DataType{
    //QDomNode节点
    QDomNode node;

    // 数据类型名称
    QString name;

    // 数据类型定义
    QString definition;

    // 是否为结构体
    bool isStructure;

    // 结构体元素
    StructEleList structElements;

    // 是否为数组
    bool isArray;

    QString text;

    // 数组类型
    DimensionArray array;

    // 作用域
    QString actionScope;

    // 描述
    QString comments;

    // id
    QString oid;
};
typedef QList<DataType>  DataTypeList;
typedef QMap<QString,DataType>  DataTypeMap;
}

#endif // DATATYPEDEFINITION_H
